/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package arkin.impl;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.impl.EObjectImpl;

import arkin.AND;
import arkin.ArkinPackage;
import arkin.Behavior;
import arkin.Constante;
import arkin.DistanceSensor;
import arkin.EQUAL;
import arkin.Expression;
import arkin.GT;
import arkin.GTE;
import arkin.IVisitor;
import arkin.LT;
import arkin.LTE;
import arkin.LightSensor;
import arkin.NOT;
import arkin.OR;
import arkin.TouchSensor;
import arkin.XOR;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Expression</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * </p>
 *
 * @generated
 */
public abstract class ExpressionImpl extends EObjectImpl implements Expression {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ExpressionImpl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass() {
		return ArkinPackage.Literals.EXPRESSION;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated NOT
	 */
	public void accept(IVisitor v){
		if(this instanceof AND){
			v.visit((AND)this);
		}
		else if(this instanceof Constante){
			v.visit((Constante)this);
		}
		else if(this instanceof EQUAL){
			v.visit((EQUAL)this);
		}
		else if(this instanceof GT){
			v.visit((GT)this);
		}
		else if(this instanceof GTE){
			v.visit((GTE)this);
		}
		else if(this instanceof LT){
			v.visit((LT)this);
		}
		else if(this instanceof LTE){
			v.visit((LTE)this);
		}
		else if(this instanceof NOT){
			v.visit((NOT)this);
		}
		else if(this instanceof OR){
			v.visit((OR)this);
		}
		else if(this instanceof XOR){
			v.visit((XOR)this);
		}
		else if(this instanceof Behavior){
			v.visit((Behavior)this);
		}
		else if(this instanceof LightSensor){
			v.visit((LightSensor)this);
		}
		else if(this instanceof DistanceSensor){
			v.visit((DistanceSensor)this);
		}
		else if(this instanceof arkin.Boolean){
			v.visit((arkin.Boolean)this);
		}
		else if(this instanceof TouchSensor){
			v.visit((TouchSensor)this);
		}
	}

} //ExpressionImpl
